package com.yl.chainStore.entity.company

import com.baomidou.mybatisplus.annotation.IdType
import com.baomidou.mybatisplus.annotation.TableField
import com.baomidou.mybatisplus.annotation.TableId
import com.baomidou.mybatisplus.annotation.TableName
import com.yl.chainStore.common.enums.Status
import com.yl.chainStore.common.enums.TypeEnum
import com.yl.common.annotation.NoArg
import com.yl.common.getContext
import java.util.*

/**
 * <p>
 *
 * </p>
 *
 * @author cxw
 * @since 2022-05-17
 */
@NoArg
@TableName("sick_customer_access_log_model")
data class SickCustomerAccessLogModel(

    /**
     * id 随访模版
     */
    @TableId(value = "id", type = IdType.AUTO)
    var id: Long,

    /**
     * 模版名称
     */
    @TableField("name")
    var name: String,

    /**
     * 状态（启用，停用）
     */
    @TableField("status")
    var status: Status = Status.OPEN,

    /**
     * 公司id
     */
    @TableField("company_id")
    var companyId: Long = getContext().companyId,

    /**
     * 分院id
     */
    @TableField("sub_company_id")
    var subCompanyId: Long = getContext().subCompanyId,

    /**
     * 随访创建类型（一次创建所有，上次完成再创建）
     */
    @TableField("create_type")
    var createType: TypeEnum = TypeEnum.SICK_CUSTOMER_ACCESS_LOG_MODEL_CREATE_TYPE_CREATE_ALL,

    /**
     * 创建计划的时间方式
     */
    @TableField("create_time_type")
    var createTimeType:TypeEnum = TypeEnum.SICK_CUSTOMER_ACCESS_LOG_MODEL_CREATE_TIME_INTERVAL_TYPE_FIRST,

    /**
     * 创建时间
     */
    @TableField("create_time")
    var createTime: Date = Date(),

    /**
     * 创建人
     */
    @TableField("create_user_id")
    var createUserId: Long = getContext().userId,

    /**
     * 数据有效性
     */
    @TableField("enabled")
    var enabled: Int = 1,

    /**
     * 排序
     */
    @TableField("order_num")
    var orderNum: Int = 1,

    /**
     * 最后修改时间
     */
    @TableField("update_time")
    var updateTime: Date = Date(),

    /**
     * 最后修改人
     */
    @TableField("update_user_id")
    var updateUserId: Long = getContext().userId,

    /**
     * 明细列表
     */
    @TableField(exist = false)
    var details : MutableList<SickCustomerAccessLogModelDetail> ?= null

)
